Provisioning a device to be an authentication device

ABSTRACT

In certain embodiments, a web services system receives a request to provision a device, such as a telephone, as an authentication device. The web services system initiates display of an image communicating a key to allow the telephone to capture the image and to send key information associated with the key. The web services system receives the key and determines that the key information is valid. In response to the determination, the web services system sends a seed to the telephone to provision the telephone to be an authentication device. The telephone can use the seed to generate one-time passcodes to access a service of the web services system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/488,357, filed Apr. 14, 2017, entitled “PROVISIONING A DEVICE TO BEAN AUTHENTICATION DEVICE,” which is a continuation of U.S. patentapplication Ser. No. 13/159,711, filed Jun. 14, 2011, entitled“PROVISIONING A DEVICE TO BE AN AUTHENTICATION DEVICE,” now U.S. Pat.No. 9,628,875, the disclosures of which are hereby incorporated hereinin their entirety.

BACKGROUND

Web service systems may require an entity to be authenticated in orderto access a service. Authentication may use one, two, or moreindependent factors to identify an entity, such as a user. As anexample, the user may be required to provide information, such as apasscode. As another example, the user may be required to have a device,such as an authentication device. As yet another example, the user maybe required to provide biometric data.

In certain situations, the authentication device may generateinformation required to access a web service. For example, theauthentication device may calculate a one-time passcode that the userenters into a computing system. If the one-time passcode is valid, theuser may be able to gain access to the web service through the computingsystem.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a system that may be used to provisiona device to be an authentication device and/or allow a device toauthorize an operation;

FIG. 2 illustrates an example of an overview of a method for providingauthentication information via an image that may be performed by thesystem of FIG. 1;

FIG. 3 illustrates an example of a method for provisioning a device tobe an authentication device that may be performed by the web servicessystem of FIG. 1; and

FIG. 4 illustrates an example of a method for allowing a device toauthorize an operation that may be performed by the web services systemof FIG. 1.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Certain embodiments may provide for efficient and/or effectiveprovisioning of an authentication device. In certain embodiments, a webservices system may receive a request to provision a device, such as atelephone, as an authentication device. The web services system mayinitiate display of an image that communicates a key. The telephone maycapture (for example, photograph) the image, extract the key from theimage, and then send key information associated with the key to the webservices system. If the key information is valid, the web servicessystem may send a seed to the telephone, which the telephone may use togenerate one-time passcodes. The embodiments may be more efficient thanrequiring a user to read the key from an image and then manually inputthe key information. The embodiments may be more effective if they avoiduser error in reading and/or inputting the key information.

Certain embodiments may allow a device to authorize an operation. In theembodiments, a server may receive a request sent by a device toauthorize an operation. The device has a seed. Display of an imageencoding a challenge code is initiated to allow the device to capturethe image and extract the challenge code. A response authorizing theoperation is calculated by the device using the challenge code and theseed. The response is sent by the device to the server. In certainexamples, the request may be received over a first channel, and theresponse may be received over a second channel distinct from the firstchannel. In other examples, the response is displayed by the device andinput by the user.

FIG. 1 illustrates an example of a system that may be used to provisiona device to be an authentication device and/or allow a device toauthorize an operation. In the illustrated example, system 10 includes adevice 20, a computing system 22, a web services system 24, anapplication server 26, and a communication network 28 coupled asillustrated.

In certain embodiments, web services system 24 receives a request toprovision device 20, such as a telephone, as an authentication device.Web services system 24 initiates display of an image communicating a keyto allow the telephone to photograph the image and to send the keyinformation. Web services system 24 receives the key information anddetermines that the key information is valid. In response to thedetermination, web services system 24 sends a seed to the telephone toprovision the telephone to be an authentication device. The telephonecan use the seed to generate one-time passcodes to access a service ofweb services system 24.

In certain embodiments, web services system 24 receives a request sentby device 20 to authorize an operation. Web services system 24 initiatesdisplay of an image encoding a challenge code to allow device 20 tocapture the image and extract the challenge code. Device 20 calculates aresponse using the challenge code and a seed, and sends the response toweb services system 24. In certain examples, device 20 may send therequest over a first channel and the response over a second channeldistinct from the first channel. In other examples, device 20 displaysthe response and a user inputs the response into computing system 22.

Web services system 24 may include one or more computing systems thatprovide a resource or perform an operation. An example of a resource isa system or a web service that provides communication between devicesover a communication network. Web services system 24 may control accessto the resource by requiring an entity requesting access to provideauthentication information. An operation may be performed for a user inresponse to authorization from the user. Examples of operations includeproviding a resource to the user and performing transaction on aresource (such as a bank account) of the user.

In the illustrated example, web services system 24 includes an interface(IF) 40, logic 42, and one or more memories 44. Logic 42 includes one ormore processors 46 and applications such as a provisioning module 48,secret generators 50, and an authentication module 52. Provisioningmodule 48 may be used to provision device 20 to be an authenticationdevice to allow device 20 to generate authentication information.Examples of methods for provisioning device 20 are described in moredetail with reference to FIGS. 2 and 3.

Secret generators 50 generate secret information, such as authenticationinformation, and then generate an image that can communication thesecret information. Examples of authentication information includepasscodes, seeds, and key information such as keys. A passcode may be astring of one or more characters that may be used for authentication,for example, to prove identity and/or gain access to a resource. Acharacter may be a unit of information that may correspond to a graphemeor a symbol such as a letter, number, or punctuation mark. Seeds andkeys are described in more detail below.

Authentication information may be used for authentication to access aresource, or may be used to calculate or obtain additionalauthentication information used to access the resource. For example,authentication information may include a passcode, a value used tocalculate a passcode, or key information that may be used to retrieve apasscode. In certain embodiments, authentication information maycomprise seed information and/or key information.

In the example, secret generators 50 include a key generator 60 and aseed generator 62. Key generator 60 generates key information that mayinclude a key itself, information used to generate and/or obtain a key,or information generated using a key. A key may be a sequence withpseudo-random characteristics that can be used as an encryption key atone end of communication, and as a decryption key at the other end.Examples of keys include public/private key sets. In certainembodiments, key information may be used to obtain other authenticationinformation, such as a seed. In certain embodiments, a key may be aone-time use key that can be used only once. In other embodiments, a keymay be used more than once.

Seed generator 62 generates seed information that may include a seeditself or information used to generate and/or obtain a seed. A seed maybe used to calculate one-time passcodes. A one-time (or one-use orsingle-use) passcode may be a passcode that is valid for a short periodof time and/or that may be used only once. Techniques for generatingpasscodes, such as one-time passcodes, from a seed is described in moredetail below.

In the example, secret generators 50 also includes an image generator68. Image generator 68 generates images that communicate authenticationinformation. An image may include one or more frames. For example, animage may be a photograph with one frame or a video with a sequence offrames. An image may include any suitable number of pixels, where eachpixel may have any suitable pixel value. For example, an image may havean array of m x n pixels, where each pixel may have a value representinga particular intensity and/or wavelength. As another example, an imagemay be a sequence of frames, each frame having a set of one, two, ormore pixels, where the set of pixels have one of two (or more) possiblevalues, such as a light or dark value.

An image may communicate information in any suitable manner. As anexample, an image may be an optical machine-readable representation ofinformation where patterns of the image correspond to particularinformation. Examples of such images include graphical codes (such asbarcodes or quick response (QR) codes) that have particular geometricpatterns (such as squares, dots, polygons, bars, or other shapes) thatcan be optically scanned to obtain the information.

As another example, an image may include a human-readable representationof information that may be captured and translated into machine-readableinformation using optical character recognition. For example, such animage may include human-readable characters that can be photographed orscanned and translated to machine-readable information.

As another example, an image may include a digital watermark that embedsinformation into the image via subtle changes to the image data. Forexample, steganography hides the information within an object that canconceal the information. Steganographic coding may be placed inside of atransport layer, such as a document file, image file, program, orprotocol.

An image may communicate any other suitable information that may beextracted by device 20 and may be sent to web services system 24. Forexample, an image may communicate an account identifier. A user may havedifferent accounts for different vendors, applications, etc. As anotherexample, a website identifier may be communicated to identify thewebsite for which device 20 is requesting access. As another example, animage may include instructions for contacting a server, such asapplication server 26.

Authentication module 52 authenticates an entity attempting to access aresource of web services system 24. Authentication module 52 may requestauthentication information to authenticate the entity and may checkwhether the authentication information is valid. For example, valid keyinformation may be required to obtain a seed, and a one-time passcodegenerated from the seed may be required to access a resource.

Device 20 may be any suitable device that can be provisioned to be anauthentication device. In certain embodiments, device 20 may be ageneral computing device, which may comprise a computing system. Incertain embodiments, device 20 may be a mobile device, which may be ahandheld device that can communicate wirelessly. Examples of mobiledevices include telephones (such as cellular, mobile, or smart), digitalassistants (such as personal or enterprise), and gaming devices. Inother embodiments, device 20 may be a dedicated authentication devicethat has image capture capabilities.

An authentication device may be a hardware security token that generatespasscodes such as one-time passcodes. An authentication device may beused with zero, one, or more other independent authentication factors.For example, in addition to information generated by an authenticationdevice, a passcode and/or biometric data may be required in order toaccess a resource.

In certain embodiments, device 20 may capture an image communicatingsecret information and/or extract the information from the image toyield authentication information that may be used to access a service ofweb services system 24. In the illustrated example, device 20 includesan image capture module 30 and a secret extractor 32. An image capturemodule 30 may include a camera and/or scanner. Image capture module 30may capture an image of an object by recording visible or other lightreflected and/or emitted from the object. Image capture module 30 maythen output image data generated from the recorded light, which may beused to reproduce and/or analyze the image. Device 20 may or may nothave a network connection.

Secret extractor 32 extracts authentication information and may use theauthentication information or may calculate additional authenticationinformation from the extracted authentication information to access aservice. The additional authentication information may be calculated byapplying a mathematical function to the extracted authenticationinformation. In certain embodiments, secret extractor 32 calculatespasscodes from a seed by applying a mathematical function to the seedand a parameter that changes. Examples of the changing parameter includea time value (such as a current time), a counter value, a previouspasscode, or a challenge code sent by web services system 24.

Computing system 22 may comprise any suitable computing system, and mayinclude one or more interfaces, logic, and one or more memories, whichare described in more detail below. Computing system 22 include adisplay 38, which may be a hardware device that can display an image. Incertain embodiments, computing system 22 may receive image data anddisplay an image on display 38 according to the image data.

Application server 26 may be a server that provides applications todevice 20. In certain embodiments, application server 26 may be anapplication store that sells an application to device 20 for payment. Incertain situations, it may not be desirable for application server 26 toprovide applications that include secret information. Accordingly,device 20 may first obtain the application from application server 26and then obtain secret information from web services system 24.

FIG. 2 illustrates an example of an overview of a method for providingauthentication information via an image that may be performed by thesystem of FIG. 1. In the example, image generator 68 generates an imagethat communicates authentication information. Image generator 68facilitates display of the image by sending image data to computingsystem 22 to display on display 38 Display 38 displays the image. Imagecapture module 30 of device 20 captures the image. Secret extractor 32of device 20 receives the image data and extracts the authenticationinformation from the image data. Device 20 then sends the authenticationinformation to authentication module 52 of web services system 24 inorder to facilitate access to a service of web services system.

In certain embodiments, web services system 24 receives a request forcertification for device 20 to send messages to a server. The requestmay be generated by a third-party application on device 20 that sendsweb service requests to the server. Web services system 24 initiatesdisplay of an image communicating certification information to allow thedevice 20 to photograph the image to use the certification informationto send the messages to the server. The certification information may beused by the device to calculate a certification and key information.

In certain embodiments, web services system 24 initiates display of animage communicating a challenge code. Device 20 photographs the image toextract the challenge code. Device 20 calculates a response from theauthentication information and the challenge code and sends the responseto web services system 24. Web services system 24 may allow access basedon the response. The challenge-response may using any suitable protocol,such as the Challenge-Handshake Authentication Protocol (CHAP).

FIG. 3 illustrates an example of a method for provisioning device 20 asan authentication device. The method may be performed by softwaredownloaded onto device 20 and/or web services system 24 of FIG. 1. Incertain embodiments, web services system 24 may comprise one or morecomputing systems that perform the method. For example, one computingsystem may perform the method, or one computing system may perform aportion of the method and one or more other computing systems mayperform other portions of the method.

Computing system 22 requests initiation of a provisioning process atstep 110. For example, a user may use computing system 22 to log onto awebsite of web services system 24 and to access a security credentialspage of the website. Provisioning module 48 of web services system 24sends an instruction to obtain an authentication device application fromapplication server 26 at step 114. For example, the security credentialspage may display an instruction to download the authentication deviceapplication and provide the website address of application server 26.

Device 20 requests the application from application server 26 at step118. For example, device 20 may access application server 26 using thegiven website address. In some situations, application server 26 may bean application store, so device 20 may provide payment in exchange forthe application. Application server 26 sends the application to theauthentication device at step 120. In certain embodiments, theapplication does not include secret information needed to provisiondevice 20 as an authentication device, so device 20 may still need toobtain the secret information.

Computing system 22 sends a request to provision device 20 as anauthentication device, and web services system 24 receives the requestat step 124. Key generator 60 of web services system 24 generates a keyat step 128. For example, key generator 60 may generate a pseudo-randomkey. Image generator 68 of web services system 24 generates an imagethat communicates the key at step 130. For example, image generator 68may generate image data with a digital watermark that can be used todisplay an image that communicates the key.

Web services system 24 initiates display of the image at step 134. Incertain embodiments, display of the image may be initiated by sendingimage data that can be used by a display to generate the image. Forexample, image services system 24 may send the image data to computingsystem 22 to display the image. Display 38 of computing system 22displays the image at step 138. Image capture module 30 of device 20captures the image at step 140. For example, device 20 may photographthe image to yield image data. Secret extractor 32 extracts the key atstep 144. For example, secret extractor 32 determines the key from thedigital watermark of the image data.

Device 20 sends key information associated with the key to web servicessystem 24 at step 148. The key information may include the key itself ora signature calculated from the key. For example, device 20 may send thekey information using a web service call. The key information isdetermined to be valid at step 150. For example, web services system 24may check that the key information conforms to accepted parameters, hasbeen assigned, and/or has not been previously used. In certainembodiments, steps 148 and 150 may be omitted. In these embodiments, webservices system 24 may send a seed that is encrypted under the keyinformation, and device can use the key information to decrypt the seed.

In response to the determination, web services system 24 sends a seed todevice 20 at step 154 to provision device 20 as an authenticationdevice. The seed may be used to generate one-time passcodes (OTPs).Device 20 generates a one-time passcode from the seed to access awebsite of web services system 24 at step 158. For example, device 20may apply a mathematical function to the seed to generate the one-timepasscode.

Computing system 22 receives the one-time passcode at step 160. Forexample, the user may read the one-time passcode from device 20 andinput the one-time passcode into computing system 22. Computing system22 sends the one-time passcode, and web services system 24 receives theone-time passcode at step 164. Web services system 24 authenticates theuser using the one-time passcode at step 168. Web services system 24 maythen allow the user to access a service of system 24.

FIG. 4 illustrates an example of a method for allowing device 20 toauthorize an operation. The method may be performed by softwaredownloaded onto device 20 and/or web services system 24 of FIG. 1. Incertain embodiments, web services system 24 may comprise one or morecomputing systems that perform the method. For example, one computingsystem may perform the method, or one computing system may perform aportion of the method and one or more other computing systems mayperform other portions of the method. In certain embodiments, device 20may have a seed, which may have been obtained according to a methoddescribed herein.

Computing system 22 requests initiation of authorization of an operationat step 204. For example, a user may use computing system 22 to log ontoa website of web services system 24. In certain embodiments, the requestmay be sent over a first communication channel.

Web services system 24 initiates display of an image communicating achallenge code at step 210. In certain embodiments, display of the imagemay be initiated by sending image data that can be used by a display togenerate the image. For example, image services system 24 may send theimage data to computing system 22 to display the image. In certainembodiments, web services system 24 may also initiate display one ormore other images. Examples of other images include: a confirmationscreen describing the operation that the user is authorizing; a requestfor a response authorizing the operation; and a request for a userpasscode to be input into device 20.

Display 38 of computing system 22 displays the image at step 214. Imagecapture module 30 of device 20 captures the image at step 218. Forexample, device 20 may photograph the image to yield image data. Secretextractor 32 extracts the challenge code at step 220. For example,secret extractor 32 determines the challenge code from the digitalwatermark of the image data. Device 20 calculates a response using thechallenge code and the seed at step 224. For example, the response maybe calculated according to the Challenge-Handshake AuthenticationProtocol (CHAP).

Step 228 and steps 230 through 238 describe examples of ways that device20 can provide the response to web services system 24. As a firstexample, device 20 sends the response to web services system 24 using asecond communication channel that is distinct from the firstcommunication channel. Distinct channels may have one, two or more, orall links that are different. As a second example, device 20 displaysthe response at step 230. The user reads the response and inputs theresponse into computing system 22 at step 234. Computing system 22 sendthe response to web services system 24 at step 238. In certainembodiments, web services system 24 may also receive other information.For example, web services system 24 may receive confirmation that avalid user passcode has been input into device 20.

Under certain circumstances, examples of the method may defend againstconfused deputy attacks. For example, the user can independently verifythe operation being authorized, so a keylogger cannot steal the one-timepasscode and relay it to an attacker to perform a different transactionbefore the user hits enter.

Modifications, additions, or omissions may be made to the systems andapparatuses disclosed herein without departing from the scope of theinvention. The components of the systems and apparatuses may beintegrated or separated. Moreover, the operations of the systems andapparatuses may be performed by more, fewer, or other components. Forexample, the operations of secret generators 50 and authenticationmodule 52 may be performed by one component, or the operations ofauthentication module 52 may be performed by more than one component.Additionally, operations of the systems and apparatuses may be performedusing any suitable logic comprising software, hardware, and/or otherlogic. As used in this document, “each” refers to each member of a setor each member of a subset of a set.

Modifications, additions, or omissions may be made to the methodsdisclosed herein without departing from the scope of the invention. Themethods may include more, fewer, or other steps. Additionally, steps maybe performed in any suitable order.

In certain embodiments, an entity that performs a first step thatprecedes (such as leads to) a second step may be regarded asfacilitating the second step. For example, if an entity performs step Athat precedes step B, the entity also facilitates step B. In certainembodiments, a first entity that performs a first step that precedes asecond step that may be performed by a second entity may be regarded asallowing the second entity to perform the second step. For example, if afirst entity performs step A that precedes step B that may be performedby a second entity, the first entity also allows the second entity toperform step B.

Systems may include one or more computing systems. A component of thesystems and apparatuses disclosed herein (such as a general computingdevice) may include an interface, logic, memory, and/or other suitableelement. An interface receives input, sends output, processes the inputand/or output, and/or performs other suitable operation. An interfacemay comprise hardware and/or software.

Logic performs the operations of the component, for example, executesinstructions to generate output from input. Logic may include hardware,software, and/or other logic. Logic may be encoded in one or moretangible media and may perform operations when executed by a computer.Certain logic, such as a processor, may manage the operation of acomponent. Examples of a processor (or processing unit) include one ormore computers, one or more microprocessors, one or more applications,and/or other logic.

In particular embodiments, the operations of the embodiments may beperformed by one or more computer readable media encoded with a computerprogram, software, computer executable instructions, and/or instructionscapable of being executed by a computer. In particular embodiments, theoperations of the embodiments may be performed by one or more computerreadable media storing, embodied with, and/or encoded with a computerprogram and/or having a stored and/or an encoded computer program.

A memory (or memory unit) stores information. A memory may comprise oneor more non-transitory, tangible, computer-readable, and/orcomputer-executable storage media. Examples of memory include computermemory (for example, Random Access Memory (RAM) or Read Only Memory(ROM)), mass storage media (for example, a hard disk), removable storagemedia (for example, a Compact Disk (CD) or a Digital Video Disk (DVD)),database and/or network storage (for example, a server), and/or othercomputer-readable medium.

Components of the systems and apparatuses disclosed may be coupled byany suitable communication network such as communication network 28. Acommunication network may comprise all or a portion of one or more ofthe following: a public switched telephone network (PSTN), a public orprivate data network, a local area network (LAN), a metropolitan areanetwork (MAN), a wide area network (WAN), a local, regional, or globalcommunication or computer network such as the Internet, a wireline orwireless network, an enterprise intranet, other suitable communicationlink, or any combination of any of the preceding.

Although this disclosure has been described in terms of certainembodiments, alterations and permutations of the embodiments will beapparent to those skilled in the art. Accordingly, the above descriptionof the embodiments does not constrain this disclosure. Other changes,substitutions, and alterations are possible without departing from thespirit and scope of this disclosure, as defined by the following claims.

1-20. (canceled)
 21. A computer-implemented method, comprising: causinga computing device to capture an image displayed on a first system,wherein the image is obtained as a result of the first system submittinga request to a second system through a first communication channel forthe image; determining a challenge code from the image; generating aresponse based at least in part on the challenge code and a firstauthentication information; and submitting, from the computing device,the response to the second system through a second communicationchannel, different from the first communication channel, to verify thecomputing device to perform one or more operations provided by thesecond system.
 22. The computer-implemented method of claim 21, furthercomprising: obtaining an indication of verification of the computingdevice to perform the one or more operations provided by the secondsystem; and performing the one or more operations using at least one ormore services provided by the second system based at least in part onthe verification.
 23. The computer-implemented method of claim 21,wherein the response is generated in accordance with aChallenge-Handshake Authentication Protocol (CHAP).
 24. Thecomputer-implemented method of claim 21, wherein the image comprises atleast: a quick response (QR) code; a digital watermark; or a barcode.25. The computer-implemented method of claim 21, wherein the computingdevice comprises at least a mobile device executing an application tocapture the image displayed on the first system.
 26. Thecomputer-implemented method of claim 21, wherein performing the one ormore operations include using one or more resources provided by thesecond system.
 27. A system, comprising: one or more processors; andmemory that stores computer-executable instructions that are executableby the one or more processors to cause the system to: obtain an imagefrom a first system, wherein the image is obtained as a result of thefirst system submitting a request to a second system for the image;extract a challenge code based at least in part on the image; calculatea response based at least in part on the challenge code and a firstauthentication information; and transmit the response to the secondsystem through a first communication channel to verify the system toperform one or more operations provided by the second system.
 28. Thesystem of claim 27, wherein the image is displayed on a webpagedisplayed on the first system.
 29. The system of claim 28, wherein theimage displayed on the webpage comprises at least: a confirmationscreen; a field value to authorize the one or more operations; or afield value for a passcode.
 30. The system of claim 27, wherein theinstructions to transmit the response to the second system furtherinclude instructions that, as a result of being executed by the one ormore processors, cause the system to transmit a passcode to the secondsystem, wherein the passcode is generated based at least in part on thefirst authentication information.
 31. The system of claim 27, whereinthe first authentication information is a cryptographic seed.
 32. Thesystem of claim 27, wherein the challenge code is determined from adigital watermark of the image.
 33. A system, comprising: one or moreprocessors; and memory that stores computer-executable instructions thatare executable by the one or more processors to cause the system to:cause an image to be displayed on a computing device, the image encodinga first authentication information and enabling an authenticationapplication to determine the first authentication information based atleast in part on the image; obtain a passcode generated based at leastin part on the first authentication information; and validate theauthentication application based at least in part on the passcode andthe first authentication information matching a second authenticationinformation.
 34. The system of claim 33, wherein the passcode isgenerated based at least in part on a first cryptographic seed that isobtained based at least in part on the first authentication information.35. The system of claim 33, wherein the first authentication informationis usable to generate a plurality of passcodes while the authenticationapplication is valid.
 36. The system of claim 33, wherein the memoryfurther includes instructions that, as a result of being executed by theone or more processors, cause the system to provide access to one ormore services as a result of validating the authentication application.37. The system of claim 33, wherein the image further comprises a quickresponse (QR) code.
 38. The system of claim 33, wherein the computingdevice comprises at least a mobile device executing the authenticationapplication.
 39. The system of claim 33, wherein the passcode is aone-time passcode that comprises at least one or more alphanumericcharacters.
 40. The system of claim 33, the passcode is furthergenerated based at least in part on a time value of the computingdevice.